commonlibsse_ng\re\b/
BGSSoundDescriptorForm.rs

1use crate::re::BGSSoundDescriptor::BGSSoundDescriptor;
2use crate::re::BSISoundDescriptor::{BSISoundDescriptor, BSISoundDescriptorVtbl};
3use crate::re::FormTypes::FormType;
4use crate::re::TESForm::{TESForm, TESFormVtbl};
5use crate::re::offsets_rtti::RTTI_BGSSoundDescriptorForm;
6use crate::re::offsets_vtable::VTABLE_BGSSoundDescriptorForm;
7use crate::rel::id::VariantID;
8
9#[repr(C)]
10#[derive(Debug)]
11pub struct BGSSoundDescriptorForm {
12    pub __base: TESForm,                          // 0x00
13    pub __base1: BSISoundDescriptor,              // 0x20
14    pub soundDescriptor: *mut BGSSoundDescriptor, // 0x28
15}
16const _: () = assert!(core::mem::size_of::<BGSSoundDescriptorForm>() == 0x30);
17
18impl BGSSoundDescriptorForm {
19    pub const RTTI: VariantID = RTTI_BGSSoundDescriptorForm;
20    pub const VTABLE: [VariantID; 2] = VTABLE_BGSSoundDescriptorForm;
21    pub const FORM_TYPE: FormType = FormType::SoundRecord;
22}
23
24#[commonlibsse_ng_derive_internal::ffi_enum]
25#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
26pub enum RecordFlags {
27    Deleted = 1 << 5,
28    Ignored = 1 << 12,
29}
30
31#[repr(C)]
32pub struct BGSSoundDescriptorFormVtbl {
33    pub __base: TESFormVtbl,             // 0x00
34    pub __base1: BSISoundDescriptorVtbl, // 0x20
35    pub GetDescriptorType: extern "C" fn(this: *const BGSSoundDescriptorForm) -> u32, // 0x3B
36}